package cn.icatw.gulimall.product.service;

import cn.icatw.gulimall.product.vo.Catelog2Vo;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.icatw.common.utils.PageUtils;
import cn.icatw.gulimall.product.entity.CategoryEntity;

import java.util.List;
import java.util.Map;

/**
 * 商品三级分类
 *
 * @author icatw
 * @email 762188827@qq.com
 * @date 2022-02-21 13:01:13
 */
public interface CategoryService extends IService<CategoryEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 得到树形菜单结构
     *
     * @return 树形菜单结构
     */
    List<CategoryEntity> listWithTree();

    /**
     * 通过ids删除菜单
     *
     * @param asList ids的list
     */
    void removeMenusByIds(List<Long> asList);

    /**
     * 根据分类id找到分类完整路径
     *
     * @param catelogId 分类id
     * @return 分类完整路径数组
     */
    Long[] findCategoryPath(Long catelogId);

    /**
     * 级联更新所有的数据
     *
     * @param category
     */
    void updateCascade(CategoryEntity category);

    /**
     * 查询一级分类菜单数据
     *
     * @param
     * @return java.util.List<cn.icatw.gulimall.product.entity.CategoryEntity>
     */
    List<CategoryEntity> getLevel1Categorys();

    /**
     * 获取分类json数据
     * @param
     * @return java.util.Map<java.lang.String, java.lang.Object>
     */
    Map<String, List<Catelog2Vo>> getCatalogJson();
}

